package cn.iocoder.yudao.module.eval.controller.admin.announcement.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 公告发布 Response VO")
@Data
public class EvalAnnouncementRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "计划ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long planId;

    @Schema(description = "模板ID", example = "1")
    private Long templateId;

    @Schema(description = "公告类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "plan")
    private String announcementType;

    @Schema(description = "公告标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "重要通知")
    private String title;

    @Schema(description = "公告内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "这是一个重要通知...")
    private String content;

    @Schema(description = "发布状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer publishStatus;

    @Schema(description = "发布渠道", example = "system,website")
    private String publishChannels;

    @Schema(description = "发布时间")
    private LocalDateTime publishTime;

    @Schema(description = "定时发布时间")
    private LocalDateTime scheduledPublishTime;

    @Schema(description = "公示开始日期")
    private LocalDate publicityStartDate;

    @Schema(description = "公示结束日期")
    private LocalDate publicityEndDate;

    @Schema(description = "公示天数", example = "7")
    private Integer publicityDays;

    @Schema(description = "目标受众", example = "all")
    private String targetAudience;

    @Schema(description = "目标群体", example = "group1,group2")
    private String targetGroups;

    @Schema(description = "查看次数", example = "100")
    private Integer viewCount;

    @Schema(description = "下载次数", example = "50")
    private Integer downloadCount;

    @Schema(description = "异议数量", example = "2")
    private Integer objectionCount;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

}
